假設今天有一個資料集,非常大,但有幾行不太重要,刪除幾行不會對結果產生太大影響
例如:
用dropna()將有缺失值的行或列刪掉,在建立一個新的DataFrame
這就是刪除行
import pandas as pd
df = pd.read_csv('data.csv')
new_df = df.dropna()
print(new_df.to_string())
注意,如果現在有一個new_df = df.dropna,不會直接改變原本得DataFrame
如果要改變原始的DataFrame,我們要在df.dropna(裡面使用參數)inplace = True
就可以改變了!
處理空白單元格的另一種方法是插入新值
這樣就不用因為某些空白儲存格而刪除整行
fillna()允許我們用值替換空白單元格:
import pandas as pd
df = pd.read_csv('data.csv')
df.fillna(130, inplace = True)
print(df.to_string())
上面的範例取代了整個資料框中的所有空白單元格
若要僅替換一列的空值,要指定DataFrame 的列名稱:
例子
將「卡路里」欄位中的 NULL 值替換為數字 130:
將df.fillna(130, inplace = True)
中 df後用[]加上指定列名稱df["Calories"].fillna(130, inplace = True)
替換空白單元格的常見方法是計算列的平均值、中位數或眾數
Pandas 使用mean() median()和mode()方法來計算指定列的對應值:
mean(): 平均數
median(): 中位數
mode(): 眾數
例子:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].median()
df.fillna(x, inplace = True)
print(df.to_string())
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].median()
df["Calories"].fillna(x, inplace = True)
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].mode()[0]
df["Calories"].fillna(x, inplace = True)